package com.soft.javase.ch08.list;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/29
 *
 * List 接口
 * 1.存取有序（存进去的顺序，与拿取出来的顺序一致的）
 * 2.允许重复存放
 * 3.允许存储null值
 *
 * ArrayList 实现类
 * 1.底层的数据结构是数组
 * 2.查询快，增删慢
 * 3.在内存中是连续的
 * 4.线程不安全
 *
 * ArrayList
 * 1.构造方法
 *     - 1.1 public ArrayList()  创建空的Object[]
 *     - 1.2 public ArrayList(Collection<? extends E> c) 使用场景：已知Set集合，转成List集合使用
 *
 * 2.API常用方法
 *     - 2.1 public int size() 获取实际元素个数
 *     - 2.2 public boolean add(E e)  添加元素
 *           public void add(int index, E element)  指定下标添加元素
 *           public boolean addAll(Collection<? extends E> c)  添加所有
 *     - 2.3 public E get(int index)  通过下标获取元素
 *     - 2.4 public E set(int index, E element) 根据下标设置元素
 *     - 2.5 public E remove(int index) 根据下标移除元素
 *           public boolean remove(Object o) 根据元素移除
 *     - 2.6 public Object[] toArray()     将集合转成数组
 *           public <T> T[] toArray(T[] a)
 *     - 2.7 public Iterator<E> iterator() 迭代器
 *     - 2.8 public void forEach(Consumer<? super E> action) 迭代
 *     - 2.9 public List<E> subList(int fromIndex, int toIndex) 截取
 *     - 2.10 public void sort(Comparator<? super E> c) 排序
 *
 * 3.使用场景
 *     - 3.1 List<String> list = new ArrayList();
 *           List<User> list = new ArrayList();
 *     - 3.2 查询较多的场景，分页搜索查询出的数据存储至ArrayList集合中
 */
public class ArrayListDemo {
}
